﻿#region Using directives
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
#endregion

namespace gpsMe.Classes
{
    /// <summary>
    /// gpsMe location point
    /// </summary>
    public class gpsMeLocationPoint
    {
        #region Accessors
        /// <summary>
        /// Latitude of the location axis
        /// </summary>
        public gpsMeLocationAxis Latitude { get; private set; }

        /// <summary>
        /// Longitude of the location point
        /// </summary>
        public gpsMeLocationAxis Longitude { get; private set; }
        #endregion

        #region Constructors
        /// <summary>
        /// Constructor with params
        /// </summary>
        /// <param name="p_oLatitude">latitude object</param>
        /// <param name="p_oLongitude">longitude object</param>
        public gpsMeLocationPoint(gpsMeLocationAxis p_oLatitude, gpsMeLocationAxis p_oLongitude)
        {
            this.Latitude = p_oLatitude;
            this.Longitude = p_oLongitude;
        }

        /// <summary>
        /// Constructor with params
        /// </summary>
        /// <param name="p_oLatitude">latitude in degrees format</param>
        /// <param name="p_oLongitude">longitude in degrees format</param>
        public gpsMeLocationPoint(double p_dLatitude, double p_dLongitude)
        {
            this.Latitude = new gpsMeLocationAxis(p_dLatitude, gpsMeLocationAxis.AXIS_TYPE_LATITUDE);
            this.Longitude = new gpsMeLocationAxis(p_dLongitude, gpsMeLocationAxis.AXIS_TYPE_LONGITUDE);
        }

        /// <summary>
        /// Constructor with params
        /// </summary>
        /// <param name="p_oLatitude">latitude in degrees minutes seconds format</param>
        /// <param name="p_oLongitude">longitude in degrees minutes seconds format</param>
        public gpsMeLocationPoint(string p_slatitude, string p_sLongitude)
        {
            this.Latitude = new gpsMeLocationAxis(p_slatitude, gpsMeLocationAxis.AXIS_TYPE_LATITUDE);
            this.Longitude = new gpsMeLocationAxis(p_sLongitude, gpsMeLocationAxis.AXIS_TYPE_LONGITUDE);
        }
        #endregion
    }
}
